using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Text;

namespace Eclipse.TRCore.Http
{
    public interface IHttpMethod
    {
        string GetResponseString(string url, NameValueCollection requestParam);
        string GetResponseString(string fullUrl);
        string GetResponseString(string url, HttpPostArguments arguments);
        byte[] DownloadData(string url);
        byte[] UploadData(string url, byte[] data);


        string GetResponseString(Uri url, NameValueCollection requestParam);
        string GetResponseString(Uri fullUrl);
        string GetResponseString(Uri url, HttpPostArguments arguments);
        byte[] DownloadData(Uri url);
        byte[] UploadData(Uri url, byte[] data);

    }


    public interface IhttpSpecialMethod
    {
        string GetResponseString(string url, NameValueCollection requestParam, uint? maxBytesLength);
        string GetResponseString(string fullUrl, uint? maxBytesLength);
        string GetResponseString(string url, HttpPostArguments arguments, uint? maxBytesLength);
        byte[] DownloadData(string url, uint? bytesLength);
        byte[] UploadData(string url, byte[] data, uint? maxBytesLength);

        string GetResponseString(Uri url, NameValueCollection requestParam, uint? maxBytesLength);
        string GetResponseString(Uri fullUrl, uint? maxBytesLength);
        string GetResponseString(Uri url, HttpPostArguments arguments, uint? maxBytesLength);
        byte[] DownloadData(Uri url, uint? maxBytesLength);
        byte[] UploadData(Uri url, byte[] data, uint? maxBytesLength);


    }
}
